package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.time.RespClaTimeCalendar;

/**
 * 排课信息Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-10
 */
public interface ScClaTimeMapper 
{

    /**
     * 查询周课表
     *
     * @param reqSearchClaTime 课表信息主键
     * @return 排课信息
     */
    public List<RespClaTimeCalendar>  selectListForCalendar(ReqSearchClaTime reqSearchClaTime);
    /**
     * 查询排课信息
     * 
     * @param courseTimeId 排课信息主键
     * @return 排课信息
     */
    public ScClaTime selectScClaTimeByCourseTimeId(Long courseTimeId);

    /**
     * 查询老师对应班级claId
     *
     * @param TeacherId 报名系统主键
     * @return 报名系统
     */
    public Long[] selectScStudentCourseByTeacherId(Long TeacherId);
    /**
     * 查询排课信息列表
     * 
     * @param scClaTime 排课信息
     * @return 排课信息集合
     */
    public List<ScClaTime> selectScClaTimeList(ScClaTime scClaTime);


    public List<ScClaTimeAttend> selectScClaTimeTeacherIdList(ScClaTime scClaTime);

    public List<ScClaTimeAttend> selectScClaTimeClaIdList(ScClaTime scClaTime);

    public List<ScClaTime> selectScClaTimeListByDate(String Date);






    /**
     * 查询排课信息列表
     *
     * @param searchClaTime 排课信息
     * @return 排课信息集合
     */
    public List<ScClaTimeAttend> selectLeaveList(SearchClaTime searchClaTime);
    /**
     * 查询排课信息列表
     *
     * @param scClaTimeAttend 排课信息
     * @return 排课信息集合
     */
    public List<ScClaTimeAttend> selectScClaTimeAttendList(ScClaTimeAttend scClaTimeAttend);


    public List<ScClaTimeAttend> selectsysMessageLeaveList(SysMessage sysMessage);
    /**
     * 新增排课信息
     * 
     * @param scClaTime 排课信息
     * @return 结果
     */
    public int insertScClaTime(ScClaTime scClaTime);



    /**
     * 修改排课信息
     * 
     * @param scClaTime 排课信息
     * @return 结果
     */
    public int updateScClaTime(ScClaTime scClaTime);

    /**
     * 修改排课上课人数和请假人数
     *
     * @param courseTimeId 排课信息
     * @return 结果
     */
    public int updateCourseTimeId(Long courseTimeId);


    /**
     * 删除排课信息
     * 
     * @param RuleId 排课信息主键
     * @return 结果
     */
    public int deleteScClaTimeByCourseRuleId(Long RuleId);

    /**
     * 删除排课信息
     *
     * @param courseTimeId 排课信息主键
     * @return 结果
     */
    public int deleteScClaTimeByCourseTimeId(Long courseTimeId);

    /**
     * 批量删除排课信息
     * 
     * @param RuleIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteScClaTimeByRuleIds(Long[] RuleIds);

    /**
     * 批量删除排课信息
     *
     * @param courseTimeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteScClaTimeByCourseTimeIds(Long[] courseTimeIds);
}
